package three_day;

/**
 * 一球从100米高度自由落下，每次落地后反跳回原高度的一半；再落下，求它在 第10次落地时，共经过多少米？第10次反弹多高？
 */
public class FreelyFallingBody {
    static double level = 0; // 记录第number次反弹多高
    static double res = 0; // 记录总共经过多少米

    public static void main(String[] args) {
        int start = 100;
        int number = 10;
        high(start, number);
        System.out.println("在第" + number + "次落地时共经过" + res + "米，" +
                                "该次反弹" + level + "米高");
    }

    /**
     * 计算第number次反弹多高，总共经过多少米
     * @param start 起始高度
     * @param number 次数
     * @return
     */
    public static void high(double start, int number){
        if (number == 1) {
            level = start;
            res += start;
            return;
        }
        res += start;
        high(start / 2, number - 1);
    }
}
